/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: eventmesh-client.proto

package org.apache.eventmesh.common.protocol.grpc.protos;

/**
 * Protobuf type {@code eventmesh.common.protocol.grpc.SimpleMessage}
 */
@SuppressWarnings({"all"})
public final class SimpleMessage extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:eventmesh.common.protocol.grpc.SimpleMessage)
        SimpleMessageOrBuilder {
    private static final long serialVersionUID = 0L;

    // Use SimpleMessage.newBuilder() to construct.
    private SimpleMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
    }

    private SimpleMessage() {
        producerGroup_ = "";
        topic_ = "";
        content_ = "";
        ttl_ = "";
        uniqueId_ = "";
        seqNum_ = "";
        tag_ = "";
    }

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
        return this.unknownFields;
    }

    private SimpleMessage(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
            throw new NullPointerException();
        }
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
            boolean done = false;
            while (!done) {
                int tag = input.readTag();
                switch (tag) {
                    case 0:
                        done = true;
                        break;
                    default: {
                        if (!parseUnknownFieldProto3(
                                input, unknownFields, extensionRegistry, tag)) {
                            done = true;
                        }
                        break;
                    }
                    case 10: {
                        RequestHeader.Builder subBuilder = null;
                        if (header_ != null) {
                            subBuilder = header_.toBuilder();
                        }
                        header_ = input.readMessage(RequestHeader.parser(), extensionRegistry);
                        if (subBuilder != null) {
                            subBuilder.mergeFrom(header_);
                            header_ = subBuilder.buildPartial();
                        }

                        break;
                    }
                    case 18: {
                        String s = input.readStringRequireUtf8();

                        producerGroup_ = s;
                        break;
                    }
                    case 26: {
                        String s = input.readStringRequireUtf8();

                        topic_ = s;
                        break;
                    }
                    case 34: {
                        String s = input.readStringRequireUtf8();

                        content_ = s;
                        break;
                    }
                    case 42: {
                        String s = input.readStringRequireUtf8();

                        ttl_ = s;
                        break;
                    }
                    case 50: {
                        String s = input.readStringRequireUtf8();

                        uniqueId_ = s;
                        break;
                    }
                    case 58: {
                        String s = input.readStringRequireUtf8();

                        seqNum_ = s;
                        break;
                    }
                    case 66: {
                        String s = input.readStringRequireUtf8();

                        tag_ = s;
                        break;
                    }
                    case 74: {
                        if (!((mutable_bitField0_ & 0x00000100) == 0x00000100)) {
                            properties_ = com.google.protobuf.MapField.newMapField(
                                    PropertiesDefaultEntryHolder.defaultEntry);
                            mutable_bitField0_ |= 0x00000100;
                        }
                        com.google.protobuf.MapEntry<String, String>
                                properties__ = input.readMessage(
                                PropertiesDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                        properties_.getMutableMap().put(
                                properties__.getKey(), properties__.getValue());
                        break;
                    }
                }
            }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                    e).setUnfinishedMessage(this);
        } finally {
            this.unknownFields = unknownFields.build();
            makeExtensionsImmutable();
        }
    }

    public static final com.google.protobuf.Descriptors.Descriptor
    getDescriptor() {
        return EventmeshGrpc.internal_static_eventmesh_common_protocol_grpc_SimpleMessage_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    protected com.google.protobuf.MapField internalGetMapField(
            int number) {
        switch (number) {
            case 9:
                return internalGetProperties();
            default:
                throw new RuntimeException(
                        "Invalid map field number: " + number);
        }
    }

    protected FieldAccessorTable
    internalGetFieldAccessorTable() {
        return EventmeshGrpc.internal_static_eventmesh_common_protocol_grpc_SimpleMessage_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                        SimpleMessage.class, Builder.class);
    }

    private int bitField0_;
    public static final int HEADER_FIELD_NUMBER = 1;
    private RequestHeader header_;

    /**
     * <code>.eventmesh.common.protocol.grpc.RequestHeader header = 1;</code>
     */
    public boolean hasHeader() {
        return header_ != null;
    }

    /**
     * <code>.eventmesh.common.protocol.grpc.RequestHeader header = 1;</code>
     */
    public RequestHeader getHeader() {
        return header_ == null ? RequestHeader.getDefaultInstance() : header_;
    }

    /**
     * <code>.eventmesh.common.protocol.grpc.RequestHeader header = 1;</code>
     */
    public RequestHeaderOrBuilder getHeaderOrBuilder() {
        return getHeader();
    }

    public static final int PRODUCERGROUP_FIELD_NUMBER = 2;
    private volatile Object producerGroup_;

    /**
     * <code>string producerGroup = 2;</code>
     */
    public String getProducerGroup() {
        Object ref = producerGroup_;
        if (ref instanceof String) {
            return (String) ref;
        } else {
            com.google.protobuf.ByteString bs =
                    (com.google.protobuf.ByteString) ref;
            String s = bs.toStringUtf8();
            producerGroup_ = s;
            return s;
        }
    }

    /**
     * <code>string producerGroup = 2;</code>
     */
    public com.google.protobuf.ByteString
    getProducerGroupBytes() {
        Object ref = producerGroup_;
        if (ref instanceof String) {
            com.google.protobuf.ByteString b =
                    com.google.protobuf.ByteString.copyFromUtf8(
                            (String) ref);
            producerGroup_ = b;
            return b;
        } else {
            return (com.google.protobuf.ByteString) ref;
        }
    }

    public static final int TOPIC_FIELD_NUMBER = 3;
    private volatile Object topic_;

    /**
     * <code>string topic = 3;</code>
     */
    public String getTopic() {
        Object ref = topic_;
        if (ref instanceof String) {
            return (String) ref;
        } else {
            com.google.protobuf.ByteString bs =
                    (com.google.protobuf.ByteString) ref;
            String s = bs.toStringUtf8();
            topic_ = s;
            return s;
        }
    }

    /**
     * <code>string topic = 3;</code>
     */
    public com.google.protobuf.ByteString
    getTopicBytes() {
        Object ref = topic_;
        if (ref instanceof String) {
            com.google.protobuf.ByteString b =
                    com.google.protobuf.ByteString.copyFromUtf8(
                            (String) ref);
            topic_ = b;
            return b;
        } else {
            return (com.google.protobuf.ByteString) ref;
        }
    }

    public static final int CONTENT_FIELD_NUMBER = 4;
    private volatile Object content_;

    /**
     * <code>string content = 4;</code>
     */
    public String getContent() {
        Object ref = content_;
        if (ref instanceof String) {
            return (String) ref;
        } else {
            com.google.protobuf.ByteString bs =
                    (com.google.protobuf.ByteString) ref;
            String s = bs.toStringUtf8();
            content_ = s;
            return s;
        }
    }

    /**
     * <code>string content = 4;</code>
     */
    public com.google.protobuf.ByteString
    getContentBytes() {
        Object ref = content_;
        if (ref instanceof String) {
            com.google.protobuf.ByteString b =
                    com.google.protobuf.ByteString.copyFromUtf8(
                            (String) ref);
            content_ = b;
            return b;
        } else {
            return (com.google.protobuf.ByteString) ref;
        }
    }

    public static final int TTL_FIELD_NUMBER = 5;
    private volatile Object ttl_;

    /**
     * <code>string ttl = 5;</code>
     */
    public String getTtl() {
        Object ref = ttl_;
        if (ref instanceof String) {
            return (String) ref;
        } else {
            com.google.protobuf.ByteString bs =
                    (com.google.protobuf.ByteString) ref;
            String s = bs.toStringUtf8();
            ttl_ = s;
            return s;
        }
    }

    /**
     * <code>string ttl = 5;</code>
     */
    public com.google.protobuf.ByteString
    getTtlBytes() {
        Object ref = ttl_;
        if (ref instanceof String) {
            com.google.protobuf.ByteString b =
                    com.google.protobuf.ByteString.copyFromUtf8(
                            (String) ref);
            ttl_ = b;
            return b;
        } else {
            return (com.google.protobuf.ByteString) ref;
        }
    }

    public static final int UNIQUEID_FIELD_NUMBER = 6;
    private volatile Object uniqueId_;

    /**
     * <code>string uniqueId = 6;</code>
     */
    public String getUniqueId() {
        Object ref = uniqueId_;
        if (ref instanceof String) {
            return (String) ref;
        } else {
            com.google.protobuf.ByteString bs =
                    (com.google.protobuf.ByteString) ref;
            String s = bs.toStringUtf8();
            uniqueId_ = s;
            return s;
        }
    }

    /**
     * <code>string uniqueId = 6;</code>
     */
    public com.google.protobuf.ByteString
    getUniqueIdBytes() {
        Object ref = uniqueId_;
        if (ref instanceof String) {
            com.google.protobuf.ByteString b =
                    com.google.protobuf.ByteString.copyFromUtf8(
                            (String) ref);
            uniqueId_ = b;
            return b;
        } else {
            return (com.google.protobuf.ByteString) ref;
        }
    }

    public static final int SEQNUM_FIELD_NUMBER = 7;
    private volatile Object seqNum_;

    /**
     * <code>string seqNum = 7;</code>
     */
    public String getSeqNum() {
        Object ref = seqNum_;
        if (ref instanceof String) {
            return (String) ref;
        } else {
            com.google.protobuf.ByteString bs =
                    (com.google.protobuf.ByteString) ref;
            String s = bs.toStringUtf8();
            seqNum_ = s;
            return s;
        }
    }

    /**
     * <code>string seqNum = 7;</code>
     */
    public com.google.protobuf.ByteString
    getSeqNumBytes() {
        Object ref = seqNum_;
        if (ref instanceof String) {
            com.google.protobuf.ByteString b =
                    com.google.protobuf.ByteString.copyFromUtf8(
                            (String) ref);
            seqNum_ = b;
            return b;
        } else {
            return (com.google.protobuf.ByteString) ref;
        }
    }

    public static final int TAG_FIELD_NUMBER = 8;
    private volatile Object tag_;

    /**
     * <code>string tag = 8;</code>
     */
    public String getTag() {
        Object ref = tag_;
        if (ref instanceof String) {
            return (String) ref;
        } else {
            com.google.protobuf.ByteString bs =
                    (com.google.protobuf.ByteString) ref;
            String s = bs.toStringUtf8();
            tag_ = s;
            return s;
        }
    }

    /**
     * <code>string tag = 8;</code>
     */
    public com.google.protobuf.ByteString
    getTagBytes() {
        Object ref = tag_;
        if (ref instanceof String) {
            com.google.protobuf.ByteString b =
                    com.google.protobuf.ByteString.copyFromUtf8(
                            (String) ref);
            tag_ = b;
            return b;
        } else {
            return (com.google.protobuf.ByteString) ref;
        }
    }

    public static final int PROPERTIES_FIELD_NUMBER = 9;

    private static final class PropertiesDefaultEntryHolder {
        static final com.google.protobuf.MapEntry<
                String, String> defaultEntry =
                com.google.protobuf.MapEntry
                        .<String, String>newDefaultInstance(
                                EventmeshGrpc.internal_static_eventmesh_common_protocol_grpc_SimpleMessage_PropertiesEntry_descriptor,
                                com.google.protobuf.WireFormat.FieldType.STRING,
                                "",
                                com.google.protobuf.WireFormat.FieldType.STRING,
                                "");
    }

    private com.google.protobuf.MapField<
            String, String> properties_;

    private com.google.protobuf.MapField<String, String>
    internalGetProperties() {
        if (properties_ == null) {
            return com.google.protobuf.MapField.emptyMapField(
                    PropertiesDefaultEntryHolder.defaultEntry);
        }
        return properties_;
    }

    public int getPropertiesCount() {
        return internalGetProperties().getMap().size();
    }

    /**
     * <code>map&lt;string, string&gt; properties = 9;</code>
     */

    public boolean containsProperties(
            String key) {
        if (key == null) {
            throw new NullPointerException();
        }
        return internalGetProperties().getMap().containsKey(key);
    }

    /**
     * Use {@link #getPropertiesMap()} instead.
     */
    @Deprecated
    public java.util.Map<String, String> getProperties() {
        return getPropertiesMap();
    }

    /**
     * <code>map&lt;string, string&gt; properties = 9;</code>
     */

    public java.util.Map<String, String> getPropertiesMap() {
        return internalGetProperties().getMap();
    }

    /**
     * <code>map&lt;string, string&gt; properties = 9;</code>
     */

    public String getPropertiesOrDefault(
            String key,
            String defaultValue) {
        if (key == null) {
            throw new NullPointerException();
        }
        java.util.Map<String, String> map =
                internalGetProperties().getMap();
        String value = map.get(key);
        if(value == null) return defaultValue;
        return value;
    }

    /**
     * <code>map&lt;string, string&gt; properties = 9;</code>
     */

    public String getPropertiesOrThrow(
            String key) {
        if (key == null) {
            throw new NullPointerException();
        }
        java.util.Map<String, String> map =
                internalGetProperties().getMap();
        if (!map.containsKey(key)) {
            throw new IllegalArgumentException();
        }
        return map.get(key);
    }

    private byte memoizedIsInitialized = -1;

    public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
            throws java.io.IOException {
        if (header_ != null) {
            output.writeMessage(1, getHeader());
        }
        if (!getProducerGroupBytes().isEmpty()) {
            com.google.protobuf.GeneratedMessageV3.writeString(output, 2, producerGroup_);
        }
        if (!getTopicBytes().isEmpty()) {
            com.google.protobuf.GeneratedMessageV3.writeString(output, 3, topic_);
        }
        if (!getContentBytes().isEmpty()) {
            com.google.protobuf.GeneratedMessageV3.writeString(output, 4, content_);
        }
        if (!getTtlBytes().isEmpty()) {
            com.google.protobuf.GeneratedMessageV3.writeString(output, 5, ttl_);
        }
        if (!getUniqueIdBytes().isEmpty()) {
            com.google.protobuf.GeneratedMessageV3.writeString(output, 6, uniqueId_);
        }
        if (!getSeqNumBytes().isEmpty()) {
            com.google.protobuf.GeneratedMessageV3.writeString(output, 7, seqNum_);
        }
        if (!getTagBytes().isEmpty()) {
            com.google.protobuf.GeneratedMessageV3.writeString(output, 8, tag_);
        }
        com.google.protobuf.GeneratedMessageV3
                .serializeStringMapTo(
                        output,
                        internalGetProperties(),
                        PropertiesDefaultEntryHolder.defaultEntry,
                        9);
        unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (header_ != null) {
            size += com.google.protobuf.CodedOutputStream
                    .computeMessageSize(1, getHeader());
        }
        if (!getProducerGroupBytes().isEmpty()) {
            size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, producerGroup_);
        }
        if (!getTopicBytes().isEmpty()) {
            size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, topic_);
        }
        if (!getContentBytes().isEmpty()) {
            size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, content_);
        }
        if (!getTtlBytes().isEmpty()) {
            size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, ttl_);
        }
        if (!getUniqueIdBytes().isEmpty()) {
            size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, uniqueId_);
        }
        if (!getSeqNumBytes().isEmpty()) {
            size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, seqNum_);
        }
        if (!getTagBytes().isEmpty()) {
            size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, tag_);
        }
        for (java.util.Map.Entry<String, String> entry
                : internalGetProperties().getMap().entrySet()) {
            com.google.protobuf.MapEntry<String, String>
                    properties__ = PropertiesDefaultEntryHolder.defaultEntry.newBuilderForType()
                    .setKey(entry.getKey())
                    .setValue(entry.getValue())
                    .build();
            size += com.google.protobuf.CodedOutputStream
                    .computeMessageSize(9, properties__);
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
    }

    @Override
    public boolean equals(final Object obj) {
        if (obj == this) {
            return true;
        }
        if (!(obj instanceof SimpleMessage)) {
            return super.equals(obj);
        }
        SimpleMessage other = (SimpleMessage) obj;

        boolean result = true;
        result = result && (hasHeader() == other.hasHeader());
        if (hasHeader()) {
            result = result && getHeader()
                    .equals(other.getHeader());
        }
        result = result && getProducerGroup()
                .equals(other.getProducerGroup());
        result = result && getTopic()
                .equals(other.getTopic());
        result = result && getContent()
                .equals(other.getContent());
        result = result && getTtl()
                .equals(other.getTtl());
        result = result && getUniqueId()
                .equals(other.getUniqueId());
        result = result && getSeqNum()
                .equals(other.getSeqNum());
        result = result && getTag()
                .equals(other.getTag());
        result = result && internalGetProperties().equals(
                other.internalGetProperties());
        result = result && unknownFields.equals(other.unknownFields);
        return result;
    }

    @Override
    public int hashCode() {
        if (memoizedHashCode != 0) {
            return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasHeader()) {
            hash = (37 * hash) + HEADER_FIELD_NUMBER;
            hash = (53 * hash) + getHeader().hashCode();
        }
        hash = (37 * hash) + PRODUCERGROUP_FIELD_NUMBER;
        hash = (53 * hash) + getProducerGroup().hashCode();
        hash = (37 * hash) + TOPIC_FIELD_NUMBER;
        hash = (53 * hash) + getTopic().hashCode();
        hash = (37 * hash) + CONTENT_FIELD_NUMBER;
        hash = (53 * hash) + getContent().hashCode();
        hash = (37 * hash) + TTL_FIELD_NUMBER;
        hash = (53 * hash) + getTtl().hashCode();
        hash = (37 * hash) + UNIQUEID_FIELD_NUMBER;
        hash = (53 * hash) + getUniqueId().hashCode();
        hash = (37 * hash) + SEQNUM_FIELD_NUMBER;
        hash = (53 * hash) + getSeqNum().hashCode();
        hash = (37 * hash) + TAG_FIELD_NUMBER;
        hash = (53 * hash) + getTag().hashCode();
        if (!internalGetProperties().getMap().isEmpty()) {
            hash = (37 * hash) + PROPERTIES_FIELD_NUMBER;
            hash = (53 * hash) + internalGetProperties().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
    }

    public static SimpleMessage parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
    }

    public static SimpleMessage parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
    }

    public static SimpleMessage parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
    }

    public static SimpleMessage parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
    }

    public static SimpleMessage parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
    }

    public static SimpleMessage parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
    }

    public static SimpleMessage parseFrom(java.io.InputStream input)
            throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input);
    }

    public static SimpleMessage parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static SimpleMessage parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
                .parseDelimitedWithIOException(PARSER, input);
    }

    public static SimpleMessage parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
                .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }

    public static SimpleMessage parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input);
    }

    public static SimpleMessage parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() {
        return newBuilder();
    }

    public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(SimpleMessage prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
                ? new Builder() : new Builder().mergeFrom(this);
    }

    @Override
    protected Builder newBuilderForType(
            BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
    }

    /**
     * Protobuf type {@code eventmesh.common.protocol.grpc.SimpleMessage}
     */
    public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:eventmesh.common.protocol.grpc.SimpleMessage)
            SimpleMessageOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
            return EventmeshGrpc.internal_static_eventmesh_common_protocol_grpc_SimpleMessage_descriptor;
        }

        @SuppressWarnings({"rawtypes"})
        protected com.google.protobuf.MapField internalGetMapField(
                int number) {
            switch (number) {
                case 9:
                    return internalGetProperties();
                default:
                    throw new RuntimeException(
                            "Invalid map field number: " + number);
            }
        }

        @SuppressWarnings({"rawtypes"})
        protected com.google.protobuf.MapField internalGetMutableMapField(
                int number) {
            switch (number) {
                case 9:
                    return internalGetMutableProperties();
                default:
                    throw new RuntimeException(
                            "Invalid map field number: " + number);
            }
        }

        protected FieldAccessorTable
        internalGetFieldAccessorTable() {
            return EventmeshGrpc.internal_static_eventmesh_common_protocol_grpc_SimpleMessage_fieldAccessorTable
                    .ensureFieldAccessorsInitialized(
                            SimpleMessage.class, Builder.class);
        }

        // Construct using org.apache.eventmesh.common.protocol.grpc.protos.SimpleMessage.newBuilder()
        private Builder() {
            maybeForceBuilderInitialization();
        }

        private Builder(
                BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
        }

        private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessageV3
                    .alwaysUseFieldBuilders) {
            }
        }

        public Builder clear() {
            super.clear();
            if (headerBuilder_ == null) {
                header_ = null;
            } else {
                header_ = null;
                headerBuilder_ = null;
            }
            producerGroup_ = "";

            topic_ = "";

            content_ = "";

            ttl_ = "";

            uniqueId_ = "";

            seqNum_ = "";

            tag_ = "";

            internalGetMutableProperties().clear();
            return this;
        }

        public com.google.protobuf.Descriptors.Descriptor
        getDescriptorForType() {
            return EventmeshGrpc.internal_static_eventmesh_common_protocol_grpc_SimpleMessage_descriptor;
        }

        public SimpleMessage getDefaultInstanceForType() {
            return SimpleMessage.getDefaultInstance();
        }

        public SimpleMessage build() {
            SimpleMessage result = buildPartial();
            if (!result.isInitialized()) {
                throw newUninitializedMessageException(result);
            }
            return result;
        }

        public SimpleMessage buildPartial() {
            SimpleMessage result = new SimpleMessage(this);
            int from_bitField0_ = bitField0_;
            int to_bitField0_ = 0;
            if (headerBuilder_ == null) {
                result.header_ = header_;
            } else {
                result.header_ = headerBuilder_.build();
            }
            result.producerGroup_ = producerGroup_;
            result.topic_ = topic_;
            result.content_ = content_;
            result.ttl_ = ttl_;
            result.uniqueId_ = uniqueId_;
            result.seqNum_ = seqNum_;
            result.tag_ = tag_;
            result.properties_ = internalGetProperties();
            result.properties_.makeImmutable();
            result.bitField0_ = to_bitField0_;
            onBuilt();
            return result;
        }

        public Builder clone() {
            return (Builder) super.clone();
        }

        public Builder setField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                Object value) {
            return (Builder) super.setField(field, value);
        }

        public Builder clearField(
                com.google.protobuf.Descriptors.FieldDescriptor field) {
            return (Builder) super.clearField(field);
        }

        public Builder clearOneof(
                com.google.protobuf.Descriptors.OneofDescriptor oneof) {
            return (Builder) super.clearOneof(oneof);
        }

        public Builder setRepeatedField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                int index, Object value) {
            return (Builder) super.setRepeatedField(field, index, value);
        }

        public Builder addRepeatedField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                Object value) {
            return (Builder) super.addRepeatedField(field, value);
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof SimpleMessage) {
                return mergeFrom((SimpleMessage) other);
            } else {
                super.mergeFrom(other);
                return this;
            }
        }

        public Builder mergeFrom(SimpleMessage other) {
            if (other == SimpleMessage.getDefaultInstance()) return this;
            if (other.hasHeader()) {
                mergeHeader(other.getHeader());
            }
            if (!other.getProducerGroup().isEmpty()) {
                producerGroup_ = other.producerGroup_;
                onChanged();
            }
            if (!other.getTopic().isEmpty()) {
                topic_ = other.topic_;
                onChanged();
            }
            if (!other.getContent().isEmpty()) {
                content_ = other.content_;
                onChanged();
            }
            if (!other.getTtl().isEmpty()) {
                ttl_ = other.ttl_;
                onChanged();
            }
            if (!other.getUniqueId().isEmpty()) {
                uniqueId_ = other.uniqueId_;
                onChanged();
            }
            if (!other.getSeqNum().isEmpty()) {
                seqNum_ = other.seqNum_;
                onChanged();
            }
            if (!other.getTag().isEmpty()) {
                tag_ = other.tag_;
                onChanged();
            }
            internalGetMutableProperties().mergeFrom(
                    other.internalGetProperties());
            this.mergeUnknownFields(other.unknownFields);
            onChanged();
            return this;
        }

        public final boolean isInitialized() {
            return true;
        }

        public Builder mergeFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            SimpleMessage parsedMessage = null;
            try {
                parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                parsedMessage = (SimpleMessage) e.getUnfinishedMessage();
                throw e.unwrapIOException();
            } finally {
                if (parsedMessage != null) {
                    mergeFrom(parsedMessage);
                }
            }
            return this;
        }

        private int bitField0_;

        private RequestHeader header_ = null;
        private com.google.protobuf.SingleFieldBuilderV3<
                RequestHeader, RequestHeader.Builder, RequestHeaderOrBuilder> headerBuilder_;

        /**
         * <code>.eventmesh.common.protocol.grpc.RequestHeader header = 1;</code>
         */
        public boolean hasHeader() {
            return headerBuilder_ != null || header_ != null;
        }

        /**
         * <code>.eventmesh.common.protocol.grpc.RequestHeader header = 1;</code>
         */
        public RequestHeader getHeader() {
            if (headerBuilder_ == null) {
                return header_ == null ? RequestHeader.getDefaultInstance() : header_;
            } else {
                return headerBuilder_.getMessage();
            }
        }

        /**
         * <code>.eventmesh.common.protocol.grpc.RequestHeader header = 1;</code>
         */
        public Builder setHeader(RequestHeader value) {
            if (headerBuilder_ == null) {
                if (value == null) {
                    throw new NullPointerException();
                }
                header_ = value;
                onChanged();
            } else {
                headerBuilder_.setMessage(value);
            }

            return this;
        }

        /**
         * <code>.eventmesh.common.protocol.grpc.RequestHeader header = 1;</code>
         */
        public Builder setHeader(
                RequestHeader.Builder builderForValue) {
            if (headerBuilder_ == null) {
                header_ = builderForValue.build();
                onChanged();
            } else {
                headerBuilder_.setMessage(builderForValue.build());
            }

            return this;
        }

        /**
         * <code>.eventmesh.common.protocol.grpc.RequestHeader header = 1;</code>
         */
        public Builder mergeHeader(RequestHeader value) {
            if (headerBuilder_ == null) {
                if (header_ != null) {
                    header_ =
                            RequestHeader.newBuilder(header_).mergeFrom(value).buildPartial();
                } else {
                    header_ = value;
                }
                onChanged();
            } else {
                headerBuilder_.mergeFrom(value);
            }

            return this;
        }

        /**
         * <code>.eventmesh.common.protocol.grpc.RequestHeader header = 1;</code>
         */
        public Builder clearHeader() {
            if (headerBuilder_ == null) {
                header_ = null;
                onChanged();
            } else {
                header_ = null;
                headerBuilder_ = null;
            }

            return this;
        }

        /**
         * <code>.eventmesh.common.protocol.grpc.RequestHeader header = 1;</code>
         */
        public RequestHeader.Builder getHeaderBuilder() {

            onChanged();
            return getHeaderFieldBuilder().getBuilder();
        }

        /**
         * <code>.eventmesh.common.protocol.grpc.RequestHeader header = 1;</code>
         */
        public RequestHeaderOrBuilder getHeaderOrBuilder() {
            if (headerBuilder_ != null) {
                return headerBuilder_.getMessageOrBuilder();
            } else {
                return header_ == null ?
                        RequestHeader.getDefaultInstance() : header_;
            }
        }

        /**
         * <code>.eventmesh.common.protocol.grpc.RequestHeader header = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
                RequestHeader, RequestHeader.Builder, RequestHeaderOrBuilder>
        getHeaderFieldBuilder() {
            if (headerBuilder_ == null) {
                headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                        RequestHeader, RequestHeader.Builder, RequestHeaderOrBuilder>(
                        getHeader(),
                        getParentForChildren(),
                        isClean());
                header_ = null;
            }
            return headerBuilder_;
        }

        private Object producerGroup_ = "";

        /**
         * <code>string producerGroup = 2;</code>
         */
        public String getProducerGroup() {
            Object ref = producerGroup_;
            if (!(ref instanceof String)) {
                com.google.protobuf.ByteString bs =
                        (com.google.protobuf.ByteString) ref;
                String s = bs.toStringUtf8();
                producerGroup_ = s;
                return s;
            } else {
                return (String) ref;
            }
        }

        /**
         * <code>string producerGroup = 2;</code>
         */
        public com.google.protobuf.ByteString
        getProducerGroupBytes() {
            Object ref = producerGroup_;
            if (ref instanceof String) {
                com.google.protobuf.ByteString b =
                        com.google.protobuf.ByteString.copyFromUtf8(
                                (String) ref);
                producerGroup_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        /**
         * <code>string producerGroup = 2;</code>
         */
        public Builder setProducerGroup(
                String value) {
            if (value == null) {
                throw new NullPointerException();
            }

            producerGroup_ = value;
            onChanged();
            return this;
        }

        /**
         * <code>string producerGroup = 2;</code>
         */
        public Builder clearProducerGroup() {

            producerGroup_ = getDefaultInstance().getProducerGroup();
            onChanged();
            return this;
        }

        /**
         * <code>string producerGroup = 2;</code>
         */
        public Builder setProducerGroupBytes(
                com.google.protobuf.ByteString value) {
            if (value == null) {
                throw new NullPointerException();
            }
            checkByteStringIsUtf8(value);

            producerGroup_ = value;
            onChanged();
            return this;
        }

        private Object topic_ = "";

        /**
         * <code>string topic = 3;</code>
         */
        public String getTopic() {
            Object ref = topic_;
            if (!(ref instanceof String)) {
                com.google.protobuf.ByteString bs =
                        (com.google.protobuf.ByteString) ref;
                String s = bs.toStringUtf8();
                topic_ = s;
                return s;
            } else {
                return (String) ref;
            }
        }

        /**
         * <code>string topic = 3;</code>
         */
        public com.google.protobuf.ByteString
        getTopicBytes() {
            Object ref = topic_;
            if (ref instanceof String) {
                com.google.protobuf.ByteString b =
                        com.google.protobuf.ByteString.copyFromUtf8(
                                (String) ref);
                topic_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        /**
         * <code>string topic = 3;</code>
         */
        public Builder setTopic(
                String value) {
            if (value == null) {
                throw new NullPointerException();
            }

            topic_ = value;
            onChanged();
            return this;
        }

        /**
         * <code>string topic = 3;</code>
         */
        public Builder clearTopic() {

            topic_ = getDefaultInstance().getTopic();
            onChanged();
            return this;
        }

        /**
         * <code>string topic = 3;</code>
         */
        public Builder setTopicBytes(
                com.google.protobuf.ByteString value) {
            if (value == null) {
                throw new NullPointerException();
            }
            checkByteStringIsUtf8(value);

            topic_ = value;
            onChanged();
            return this;
        }

        private Object content_ = "";

        /**
         * <code>string content = 4;</code>
         */
        public String getContent() {
            Object ref = content_;
            if (!(ref instanceof String)) {
                com.google.protobuf.ByteString bs =
                        (com.google.protobuf.ByteString) ref;
                String s = bs.toStringUtf8();
                content_ = s;
                return s;
            } else {
                return (String) ref;
            }
        }

        /**
         * <code>string content = 4;</code>
         */
        public com.google.protobuf.ByteString
        getContentBytes() {
            Object ref = content_;
            if (ref instanceof String) {
                com.google.protobuf.ByteString b =
                        com.google.protobuf.ByteString.copyFromUtf8(
                                (String) ref);
                content_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        /**
         * <code>string content = 4;</code>
         */
        public Builder setContent(
                String value) {
            if (value == null) {
                throw new NullPointerException();
            }

            content_ = value;
            onChanged();
            return this;
        }

        /**
         * <code>string content = 4;</code>
         */
        public Builder clearContent() {

            content_ = getDefaultInstance().getContent();
            onChanged();
            return this;
        }

        /**
         * <code>string content = 4;</code>
         */
        public Builder setContentBytes(
                com.google.protobuf.ByteString value) {
            if (value == null) {
                throw new NullPointerException();
            }
            checkByteStringIsUtf8(value);

            content_ = value;
            onChanged();
            return this;
        }

        private Object ttl_ = "";

        /**
         * <code>string ttl = 5;</code>
         */
        public String getTtl() {
            Object ref = ttl_;
            if (!(ref instanceof String)) {
                com.google.protobuf.ByteString bs =
                        (com.google.protobuf.ByteString) ref;
                String s = bs.toStringUtf8();
                ttl_ = s;
                return s;
            } else {
                return (String) ref;
            }
        }

        /**
         * <code>string ttl = 5;</code>
         */
        public com.google.protobuf.ByteString
        getTtlBytes() {
            Object ref = ttl_;
            if (ref instanceof String) {
                com.google.protobuf.ByteString b =
                        com.google.protobuf.ByteString.copyFromUtf8(
                                (String) ref);
                ttl_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        /**
         * <code>string ttl = 5;</code>
         */
        public Builder setTtl(
                String value) {
            if (value == null) {
                throw new NullPointerException();
            }

            ttl_ = value;
            onChanged();
            return this;
        }

        /**
         * <code>string ttl = 5;</code>
         */
        public Builder clearTtl() {

            ttl_ = getDefaultInstance().getTtl();
            onChanged();
            return this;
        }

        /**
         * <code>string ttl = 5;</code>
         */
        public Builder setTtlBytes(
                com.google.protobuf.ByteString value) {
            if (value == null) {
                throw new NullPointerException();
            }
            checkByteStringIsUtf8(value);

            ttl_ = value;
            onChanged();
            return this;
        }

        private Object uniqueId_ = "";

        /**
         * <code>string uniqueId = 6;</code>
         */
        public String getUniqueId() {
            Object ref = uniqueId_;
            if (!(ref instanceof String)) {
                com.google.protobuf.ByteString bs =
                        (com.google.protobuf.ByteString) ref;
                String s = bs.toStringUtf8();
                uniqueId_ = s;
                return s;
            } else {
                return (String) ref;
            }
        }

        /**
         * <code>string uniqueId = 6;</code>
         */
        public com.google.protobuf.ByteString
        getUniqueIdBytes() {
            Object ref = uniqueId_;
            if (ref instanceof String) {
                com.google.protobuf.ByteString b =
                        com.google.protobuf.ByteString.copyFromUtf8(
                                (String) ref);
                uniqueId_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        /**
         * <code>string uniqueId = 6;</code>
         */
        public Builder setUniqueId(
                String value) {
            if (value == null) {
                throw new NullPointerException();
            }

            uniqueId_ = value;
            onChanged();
            return this;
        }

        /**
         * <code>string uniqueId = 6;</code>
         */
        public Builder clearUniqueId() {

            uniqueId_ = getDefaultInstance().getUniqueId();
            onChanged();
            return this;
        }

        /**
         * <code>string uniqueId = 6;</code>
         */
        public Builder setUniqueIdBytes(
                com.google.protobuf.ByteString value) {
            if (value == null) {
                throw new NullPointerException();
            }
            checkByteStringIsUtf8(value);

            uniqueId_ = value;
            onChanged();
            return this;
        }

        private Object seqNum_ = "";

        /**
         * <code>string seqNum = 7;</code>
         */
        public String getSeqNum() {
            Object ref = seqNum_;
            if (!(ref instanceof String)) {
                com.google.protobuf.ByteString bs =
                        (com.google.protobuf.ByteString) ref;
                String s = bs.toStringUtf8();
                seqNum_ = s;
                return s;
            } else {
                return (String) ref;
            }
        }

        /**
         * <code>string seqNum = 7;</code>
         */
        public com.google.protobuf.ByteString
        getSeqNumBytes() {
            Object ref = seqNum_;
            if (ref instanceof String) {
                com.google.protobuf.ByteString b =
                        com.google.protobuf.ByteString.copyFromUtf8(
                                (String) ref);
                seqNum_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        /**
         * <code>string seqNum = 7;</code>
         */
        public Builder setSeqNum(
                String value) {
            if (value == null) {
                throw new NullPointerException();
            }

            seqNum_ = value;
            onChanged();
            return this;
        }

        /**
         * <code>string seqNum = 7;</code>
         */
        public Builder clearSeqNum() {

            seqNum_ = getDefaultInstance().getSeqNum();
            onChanged();
            return this;
        }

        /**
         * <code>string seqNum = 7;</code>
         */
        public Builder setSeqNumBytes(
                com.google.protobuf.ByteString value) {
            if (value == null) {
                throw new NullPointerException();
            }
            checkByteStringIsUtf8(value);

            seqNum_ = value;
            onChanged();
            return this;
        }

        private Object tag_ = "";

        /**
         * <code>string tag = 8;</code>
         */
        public String getTag() {
            Object ref = tag_;
            if (!(ref instanceof String)) {
                com.google.protobuf.ByteString bs =
                        (com.google.protobuf.ByteString) ref;
                String s = bs.toStringUtf8();
                tag_ = s;
                return s;
            } else {
                return (String) ref;
            }
        }

        /**
         * <code>string tag = 8;</code>
         */
        public com.google.protobuf.ByteString
        getTagBytes() {
            Object ref = tag_;
            if (ref instanceof String) {
                com.google.protobuf.ByteString b =
                        com.google.protobuf.ByteString.copyFromUtf8(
                                (String) ref);
                tag_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        /**
         * <code>string tag = 8;</code>
         */
        public Builder setTag(
                String value) {
            if (value == null) {
                throw new NullPointerException();
            }

            tag_ = value;
            onChanged();
            return this;
        }

        /**
         * <code>string tag = 8;</code>
         */
        public Builder clearTag() {

            tag_ = getDefaultInstance().getTag();
            onChanged();
            return this;
        }

        /**
         * <code>string tag = 8;</code>
         */
        public Builder setTagBytes(
                com.google.protobuf.ByteString value) {
            if (value == null) {
                throw new NullPointerException();
            }
            checkByteStringIsUtf8(value);

            tag_ = value;
            onChanged();
            return this;
        }

        private com.google.protobuf.MapField<
                String, String> properties_;

        private com.google.protobuf.MapField<String, String>
        internalGetProperties() {
            if (properties_ == null) {
                return com.google.protobuf.MapField.emptyMapField(
                        PropertiesDefaultEntryHolder.defaultEntry);
            }
            return properties_;
        }

        private com.google.protobuf.MapField<String, String>
        internalGetMutableProperties() {
            onChanged();
            ;
            if (properties_ == null) {
                properties_ = com.google.protobuf.MapField.newMapField(
                        PropertiesDefaultEntryHolder.defaultEntry);
            }
            if (!properties_.isMutable()) {
                properties_ = properties_.copy();
            }
            return properties_;
        }

        public int getPropertiesCount() {
            return internalGetProperties().getMap().size();
        }

        /**
         * <code>map&lt;string, string&gt; properties = 9;</code>
         */

        public boolean containsProperties(
                String key) {
            if (key == null) {
                throw new NullPointerException();
            }
            return internalGetProperties().getMap().containsKey(key);
        }

        /**
         * Use {@link #getPropertiesMap()} instead.
         */
        @Deprecated
        public java.util.Map<String, String> getProperties() {
            return getPropertiesMap();
        }

        /**
         * <code>map&lt;string, string&gt; properties = 9;</code>
         */

        public java.util.Map<String, String> getPropertiesMap() {
            return internalGetProperties().getMap();
        }

        /**
         * <code>map&lt;string, string&gt; properties = 9;</code>
         */

        public String getPropertiesOrDefault(
                String key,
                String defaultValue) {
            if (key == null) {
                throw new NullPointerException();
            }
            java.util.Map<String, String> map =
                    internalGetProperties().getMap();
            String value = map.get(key);
            if(value == null) return defaultValue;
            return value;
        }

        /**
         * <code>map&lt;string, string&gt; properties = 9;</code>
         */

        public String getPropertiesOrThrow(
                String key) {
            if (key == null) {
                throw new NullPointerException();
            }
            java.util.Map<String, String> map =
                    internalGetProperties().getMap();
            if (!map.containsKey(key)) {
                throw new IllegalArgumentException();
            }
            return map.get(key);
        }

        public Builder clearProperties() {
            internalGetMutableProperties().getMutableMap()
                    .clear();
            return this;
        }

        /**
         * <code>map&lt;string, string&gt; properties = 9;</code>
         */

        public Builder removeProperties(
                String key) {
            if (key == null) {
                throw new NullPointerException();
            }
            internalGetMutableProperties().getMutableMap()
                    .remove(key);
            return this;
        }

        /**
         * Use alternate mutation accessors instead.
         */
        @Deprecated
        public java.util.Map<String, String>
        getMutableProperties() {
            return internalGetMutableProperties().getMutableMap();
        }

        /**
         * <code>map&lt;string, string&gt; properties = 9;</code>
         */
        public Builder putProperties(
                String key,
                String value) {
            if (key == null) {
                throw new NullPointerException();
            }
            if (value == null) {
                throw new NullPointerException();
            }
            internalGetMutableProperties().getMutableMap()
                    .put(key, value);
            return this;
        }

        /**
         * <code>map&lt;string, string&gt; properties = 9;</code>
         */

        public Builder putAllProperties(
                java.util.Map<String, String> values) {
            internalGetMutableProperties().getMutableMap()
                    .putAll(values);
            return this;
        }

        public final Builder setUnknownFields(
                final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFieldsProto3(unknownFields);
        }

        public final Builder mergeUnknownFields(
                final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:eventmesh.common.protocol.grpc.SimpleMessage)
    }

    // @@protoc_insertion_point(class_scope:eventmesh.common.protocol.grpc.SimpleMessage)
    private static final SimpleMessage DEFAULT_INSTANCE;

    static {
        DEFAULT_INSTANCE = new SimpleMessage();
    }

    public static SimpleMessage getDefaultInstance() {
        return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<SimpleMessage>
            PARSER = new com.google.protobuf.AbstractParser<SimpleMessage>() {
        public SimpleMessage parsePartialFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return new SimpleMessage(input, extensionRegistry);
        }
    };

    public static com.google.protobuf.Parser<SimpleMessage> parser() {
        return PARSER;
    }

    @Override
    public com.google.protobuf.Parser<SimpleMessage> getParserForType() {
        return PARSER;
    }

    public SimpleMessage getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
    }

}

